TSMorph 3.0 Contents
********************

@Remark $VER: TSMorph_guide 3.0 (5.3.94)

Quick overview
**************

For a quick tutorial see @{"Tutorial/Tutorial.readme" ALINK "Tutorial/Tutorial.readme/Main"}.

TSMorph is a set of morphing programs. It consists of two programs:

     TSMorph         Edit the Morph parameters
     TSMorph-render  Generate the morphed images

TSMorph is used to create a parameter file which is used by TSMorph-render to produce the morphed images. TSMorph-render works with 24 bit internally. Run times can be about 3 seconds per frame for a 150x150 image on a 28Mhz 68040 - See Benchmarks.

TSMorph-render can be used to morph one image to another in a set number of frames with a number of control points, just distort one image with control points. It can also be used to morph or warp a series of images (e.g. to morph between two animations). When TSMorph is run without parameters it will display an ASL file requester for a file created by TSMorph, it will then create the images, displaying a Progress Requester on the default (or named) public screen allowing the process to be interrupted and/or stopped.

ARexx scripts are run before and after each image is processed, and also before each image is loaded. These allow the changing of movement and colour to be controlled along with the ability to only generate some frames, and also pre and post image processing (e.g. to change to a non-24-bit format and build an animation).

TSMorph is used to generate the parameter file. When run it displays an Information Window on a public screen. This allows the input of the file names to morph between, the number of frames, the start frame, the output file names, and the type of morph (single or dual images) to be changed.

It also allows the editing of control points on the images. The images (most image formats can be loaded - See OPENMODE) are displayed on a public screen in resizeable, scrollable windows.

When the images are displayed control points can be edited in various modes. These modes allow the addition, deletion, linking and unlinking of the control points.

Context sensitive help is displayed using amigaguide (if available). The Help key can be pressed in the gadgets, over the gadgets, on menus or anytime a window is active.

TSMorph is ©1993/94 Topicsave Limited.

The author can be contacted by EMail as mark@topic.demon.co.uk or mpaddock@cix.compulink.co.uk.

Installation instructions
*************************

If you wish to use Installer then TSMorph can be installed using the supplied script. If not then the following is a description of what the script does.

  * 1) Make a new drawer for the executables - default Work:TSMorph,

  * 2) Copy TSMorph, TSMorph-render, TSMorph.doc, TSMorph.guide, TSMorph-prefs and the Rexx drawer and its contents and all their icons to the drawer created in 1) above (if you have a 68020/030 with 68881/2 then copy the FPU version TSMorph-render.881 and rename it as TSMorph-render instead of copying TSMorph-render, or if you have a 68040 then copy the 040 version TSMorph-render.040 and rename it as TSMorph-render instead of copying TSMorph-render)

  * 3) If required copy the Brush and Cursor drawers and contents.

  * 4) Make new drawers ENVARC:TSMorph and ENV:TSMorph,

  * 5) Copy the default Icons to the directories created above.

  * 6) Amend your s:user-startup to assign TSMorph: to the drawer created in step 1).

  * 7) Manually perform the assign in step 6).

  * 8) If you are running system version 3.0 (or greater) change the default tool for TSMorph.guide to MultiView.

  * 9) If required copy the Tutorial directory to TSMorph:.

  * 10) If required copy the HTML directory to TSMorph:, also copy the View_HTML icon and use an editor to make the file contain:

         CD HTML
         Path:Mosaic file://localhost/TSMorph:html/TSMorph.html

             Where Path:Mosaic is the location of your version of Mosaic.

The following files are included in this distribution:

     COPYING                      GNU General Public License
     TSMorph-render.881           The rendering program 68020/68881 version
     TSMorph-render.881.info      Icon
     TSMorph-render.040           The rendering program 68040 version
     TSMorph-render.040.info      Icon
     TSMorph                      The parameter set up program
     TSMorph.info                 Icon
     TSMorph-prefs                Preferences editor
     TSMorph-prefs.info           Icon
     TSMorph-render               The rendering program
     TSMorph-render.info          Icon
     @{"TSMorph.doc" ALINK "TSMorph.doc/Main"}                 Documentation in plain text format
     TSMorph.doc.info             Icon
     @{"TSMorph.guide" ALINK "TSMorph.guide/Main"}               Documentation in amigaguide format
     TSMorph.guide.info           Icon
     Install                      Installation script for Installer
     Install.info                 Icon
     Installer                    Commodore Installer
     Read.Me                      Short read me file
     Read.Me.info                 Icon
     View_HTML.info               Icon
     HTML/#?                      .html files
     HTML/Images/#?               .html images
     Env.info                     Icon
     Env/TSMorph.info             Icon
     Env/TSMorph/def_points.info  Default project Icon
     Env/TSMorph/def_bw16.info    Default 16 colour grey Icon
     Env/TSMorph/def_bw256.info   Default 256 colour grey Icon
     Env/TSMorph/def_ham6.info    Default HAM 6 Icon
     Env/TSMorph/def_ham8.info    Default HAM 8 Icon
     Env/TSMorph/def_dctv3.info   Default DCTV 3 plane Icon
     Env/TSMorph/def_dctv4.info   Default DCTV 4 plane Icon
     Env/TSMorph/def_iff.info     Default OpalVision IFF Icon
     Env/TSMorph/def_ilbm.info    Default 24 bit ILBM Icon
     Env/TSMorph/def_jpg.info     Default OpalVision JPEG Icon
     Env/TSMorph/def_ppm.info     Default PPM Icon
     Env/TSMorph/def_prefs.info   Default prefs Icon
     Rexx.info                    Icon
     @{"Rexx/FadeToBlack.TSM" ALINK "Rexx/FadeToBlack.TSM/Main"}        Example prescript script
     Rexx/FadeToBlack.TSM.info    Icon
     @{"Rexx/FadeToWhite.TSM" ALINK "Rexx/FadeToWhite.TSM/Main"}        Example prescript script
     Rexx/FadeToWhite.TSM.info    Icon
     @{"Rexx/Loadscript.TSM" ALINK "Rexx/Loadscript.TSM/Main"}         Example loadscript script
     Rexx/Loadscript.TSM.info     Icon
     @{"Rexx/PixelMorph.TSM" ALINK "Rexx/PixelMorph.TSM/Main"}         Example prescript script
     Rexx/PixelMorph.TSM.info     Icon
     @{"Rexx/PixelWarp.TSM" ALINK "Rexx/PixelWarp.TSM/Main"}          Example prescript script
     Rexx/PixelWarp.TSM.info      Icon
     @{"Rexx/PostAnim.TSM" ALINK "Rexx/PostAnim.TSM/Main"}           Example postscript script
     Rexx/PostAnim.TSM.info       Icon
     @{"Rexx/Postscript.TSM" ALINK "Rexx/Postscript.TSM/Main"}         Example postscript script
     Rexx/Postscript.TSM.info     Icon
     @{"Rexx/PreAll.TSM" ALINK "Rexx/PreAll.TSM/Main"}             Example prescript script
     Rexx/PreAll.TSM.info         Icon
     @{"Rexx/PreAnim.TSM" ALINK "Rexx/PreAnim.TSM/Main"}            Example preview script
     Rexx/PreAnim.TSM.info        Icon
     @{"Rexx/Prescript.TSM" ALINK "Rexx/Prescript.TSM/Main"}          Example prescript script
     Rexx/Prescript.TSM.info      Icon
     @{"Rexx/Preview.TSM" ALINK "Rexx/Preview.TSM/Main"}            Example preview script
     Rexx/Preview.TSM.info        Icon
     @{"Rexx/ToHam.TSM" ALINK "Rexx/ToHam.TSM/Main"}              Example postscript script
     Rexx/ToHam.TSM.info          Icon
     Tutorial.info                Icon
     @{"Tutorial/cat.pic" ALINK "Tutorial/cat.pic/Main"}            Cat IFF image
     @{"Tutorial/girl.pic" ALINK "Tutorial/girl.pic/Main"}           Girl IFF image
     @{"Tutorial/Tutorial.readme" ALINK "Tutorial/Tutorial.readme/Main"}    Tutorial instructions
     Tutorial/Tutorial.readme.infoIcon
     Brush.info                   Icon
     Brush/1st                    Brush
     Brush/1st.info               Icon
     Brush/Add                    Brush
     Brush/Add.info               Icon
     Brush/Del                    Brush
     Brush/Del.info               Icon
     Brush/Goto                   Brush
     Brush/Goto.info              Icon
     Brush/Last                   Brush
     Brush/Last.info              Icon
     Brush/Link                   Brush
     Brush/Link.info              Icon
     Brush/Next                   Brush
     Brush/Next.info              Icon
     Brush/None                   Brush
     Brush/None.info              Icon
     Brush/one                    Brush
     Brush/one.info               Icon
     Brush/Prev                   Brush
     Brush/Prev.info              Icon
     Brush/Rel                    Brush
     Brush/Rel.info               Icon
     Brush/Two                    Brush
     Brush/Two.info               Icon
     Brush/Unlink                 Brush
     Brush/Unlink.info            Icon
     Cursor.info                  Icon
     Cursor/XAdd                  Pointer
     Cursor/XAdd.info             Icon
     Cursor/XDel                  Pointer
     Cursor/XDel.info             Icon
     Cursor/XL1                   Pointer
     Cursor/XL1.info              Icon
     Cursor/XL2                   Pointer
     Cursor/XL2.info              Icon
     Cursor/XMov                  Pointer
     Cursor/XMov.info             Icon
     Cursor/XOne                  Pointer
     Cursor/XOne.info             Icon
     Cursor/XRel                  Pointer
     Cursor/XRel.info             Icon
     Cursor/XTwo                  Pointer
     Cursor/XTwo.info             Icon
     Cursor/XU1                   Pointer
     Cursor/XU1.info              Icon
     Cursor/XU2                   Pointer
     Cursor/XU2.info              Icon

Software and Hardware required
******************************

The following libraries (with minimum version) are required to run TSMorph:

     intuition.library        37
     iffparse.library         37
     graphics.library         37
     layers.library           37
     gadtools.library         37
     asl.library              37
     utility.library          37
     diskfont.library         36
     icon.library             37
     rexxsyslib.library       0

The following will also be used if present:

     amigaguide.library       34
     dctv.library             3
     opal.library             0  Note: OpalVision board is not required
     reqtools.library         38 reqtools is ©1991/1992 Nico François
                                 This is required for Animated Warps/Morphs
     nofrag.library           2  nofrag is © Copyright 1991 Jaba Development.
     egs.library              0  EGS is © Copyright 1990/93 VIONA Development.
     egsintui.library         0
     egsgfx.library           0
     egsrequest.library       0

TSMorph-render requires a large amount of chip memory (or opal.library). If you have 1Mb then 512x512 images can be morphed (though you may have to run workbench on a 2 colour 640x200 screen). 640x512 is probably impossible without 2Mb of chip memory.

The amount of chip memory required by TSMorph can be reduced to 1/5 by setting the ZOOM parameter to OFF.

Tool types and Shell parameters
*******************************

Both TSMorph and TSMorph-render can be run from the Shell or the Workbench. Most parameters can be edited using the Settings menu.

Note: TSMorph and TSMorph-render both require a stack size of more than 4096. 8192 should be OK. If the stack is not set large enough then the programs will probably just crash.

Parameters can be supplied, normally either on the Shell command line, as Icon Tool Types on the Project, TSMorph or TSMorph-render Icon, or in a settings file.

The format of settings files is a text file with lines in the format:

     Settingstype=settingsvalue

Blank lines or lines starting with a ; (semi-colon) are treated as comments. Any settings supplied on the Shell command line or as an Icon Tool Type override values specified in this file. Parameters on the Project Icon override parameters on the Tool Icon.

Note: All the Project Icon tool types are used if the project is run with a default tool or by double clicking a tool, some are not used if the project is selected using a file requester, if the Tool was run from the Shell then file requester selected project tool types are ignored. Also some settings can not be changed on open projects,

The Settings file name used is first file found from:

     1) The name supplied in the SETTINGS= parameter on the project.
     2) The name supplied in the SETTINGS= parameter on the tool.
     3) TSMorph.prefs
        in the project directory for the workbench,
        the current directory from the Shell.
     4) TSMorph.prefs
        in the directory TSMorph was loaded from.
     5) ENV:TSMorph/TSMorph.prefs

Unless KEEPSETTINGS is set to NO current settings are saved in ENV:TSMorph/TSMorph.prefs when TSMorph is quit. Settings can be saved and loaded from the Settings menu.

Parameters to TSMorph
=====================

The following parameters can be supplied, normally either on the Shell command line, as Icon Tool Types on the Project or TSMorph Icon, or in a settings file:

CHANGEPALETTE=YES/NO/OFF
------------------------

Sets the default value of the Change Palette? settings menu item - defaults to YES.

This item toggles if each images palette should be used to display the image when the window is active. Each image window can have its own palette. This option operates with the OPENMODE parameter.

Since the ability to change screens colour palettes is not supported by CBM this menu option can be disabled by setting this parameter to OFF.

CREATEICONS=YES/NO
------------------

Sets the default value of the Create Icons? settings menu item - defaults to YES.

This item toggles if Icons are to be saved with parameter files. If it is selected then an Icon will be saved. The icon will come from ENV:TSMorph/def_points if this exists, secondly from ENV:SYS/def_points, otherwise the default project Icon is used.

This parameter is not changed by Requester loaded projects.

CREATEICONSP=YES/NO
-------------------

Sets the default value of the Create Prefs Icons? settings menu item - defaults to YES.

This item toggles if Icons are to be saved with Settings files. If it is selected then an Icon will be saved. The icon will come from ENV:TSMorph/def_prefs if this exists, secondly from ENV:SYS/def_prefs, otherwise the default project Icon is used.

CUSTOMDEPTH=4
-------------

This gives the depth of the custom screen to open if CUSTOMMODE is specified.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the screen mode, but any change is ignored until TSMorph is reloaded.

The default value is 4.

CUSTOMMODE=screen_mode
----------------------

This gives the mode of the custom screen to open.

The mode is as show in the Screen Mode requester - case is ignored (e.g. "PAL:Low Res"). This parameter is not changed by Requester loaded projects.

The name of the screen must be given by the PUBSCREEN parameter. The depth is given by the CUSTOMDEPTH parameter. The screen will mostly clone the Workbench, but other colours will be set up as a grey scale.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the screen mode, but any change is ignored until TSMorph is reloaded.

The default value is nothing which means do not open a custom screen.

EGS=YES/NO
----------

This controls the use of EGS when displaying the edit windows. See requirements for library requirements. If set to yes then the edit windows and relevent error requesters are displayed on the default EGS screen.

ZOOM is always set to OFF when using EGS. OPENMODE may also be ignored in some circumstances.

This parameter is not available as a menu option, is not saved in settings files and can not be specified on a project Icon.

Default values is NO.

FILES=filename
--------------

This is only relevant to the Shell, only one name can be supplied - default is to open a new unnamed project.

HELP=YES/NO
-----------

Sets the default value of the Continuous Help? settings menu item - defaults to NO.

This option has more effect when running release 3.0 or later. When set to YES help is continuously displayed using amigaguide (if available).

KEEPSETTINGS=YES/NO
-------------------

Sets the default value of the Keep Settings? settings menu item - defaults to YES.

By default current settings are saved in ENV:TSMorph/TSMorph.prefs when TSMorph is quit. This parameter and menu item enable this behaviour to be turned off.

OPENMODE=ALWAYS/IFILBM/IFCOLOURS/REMAP/OPAL
-------------------------------------------

This parameter and menu item specify how images should be loaded for displaying by TSMorph.

  * ALWAYS    - Only try and load normal ILBM images. Fail if not. The CHANGEPALETTE parameter has an affect on the image display.

  * IFILBM    - First try to load as an ILBM image, load and remap the image if the image is not an ILBM or has 24 planes.

  * IFCOLOURS - As IFILBM but remap if the number of planes in the image exceed the number of the screen.

  * REMAP     - Loads most ILBM (including 24 bit, EHB, HAM6, HAM8 and DCTV (with dctv.library [REMAP needs to be specified to correctly display DCTV images]), JPEG, TARGA, PPM and GIF. For JPEG if CHANGEPALETTE=YES or NO and the screen (see PUBSCREEN) has more than 2 bit planes then the image is remapped to a dynamic type palette. Otherwise the image is remapped to the screen palette. If this fails then opal.library will be used (if present). This may be required for some JPEGs.

  * OPAL      - Always use opal.library to load the image. This is probably only useful to load images in Opal FAST IFF format. The images are remapped to the current palette.

When loading and remapping complex images a requester is displayed with a title of Loading Image, a text gadget giving progress messages, a Pass gadget, and a third progress gadget. There is no way of interrupting the load process.

For slow machines it is suggested that you convert the images to ILBMs and specify ALWAYS.

PREVIEW=scriptname
------------------

This specifies the name of an ARexx script to run to preview the rendered image.

The default script is @{"Rexx/Preview" ALINK "Rexx/Preview.TSM/Main"}.

The version supplied renders the image as a 16 colour grey scale with a resolution of about 128/64 and displays it.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the value.

PUBSCREEN=pubscreenname
-----------------------

This gives the name of the Public Screen on which to open all TSMorph windows - default is the default public screen.

This parameter is not changed by Requester loaded projects.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the screen name, but any change is ignored until TSMorph is reloaded.

If CUSTOMMODE is supplied as well then a public screen of this name is opened.

REQTOOLS=YES/NO/ALL
-------------------

This controls the use of reqtools.library. If set to NO then reqtools will not be used (except in very unusual circumstances). It will still however be opened and closed. If set to YES then reqtools will be used for various requesters. If set to ALL then it will be used for the File Requesters as well.

This parameter is not available as a menu option, is not saved in settings files and can not be specified on a project Icon.

Default values is YES.

SETTINGS=filename
-----------------

This can only be supplied on the Shell command line, or an Icon Tool Type. It specifies the name of a file for more parameters. See parameters.

This parameter is not changed by Requester loaded projects.

ZOOM=YES/NO/OFF
---------------

Sets the default value of the Zoom? settings menu item. If set to YES then images will be initially displayed 2x normal size, if set to NO then images will be initially displayed normal size, setting to OFF disables the Zoom? option, this reduces chip memory usage to 1/5 - defaults to NO.

Parameters to TSMorph-render
============================

The following parameters can be supplied, normally either on the Shell command line, as Icon Tool Types on the Project or TSMorph-render Icon, or in a settings file:

ANTIALIAS=NO/YES
----------------

This parameter and menu item select if the output files should be Anti-Aliased. Setting to YES can improve the quality of the images but will slow down the rendering process.

This parameter is ignored if INTEGER is set to YES.

Default value is NO.

CREATEICONSR=NO/YES
-------------------

This parameter and menu item selects if Icons are to be saved with image files. If it is YES then an Icon will be saved. The icon depends on the save format.

     ENV:TSMorph/def_bw16  - 16 colour grey scale images
     ENV:TSMorph/def_bw256 - 256 colour grey scale images
     ENV:TSMorph/def_ham6  - HAM 6 images
     ENV:TSMorph/def_ham8  - HAM 8 images
     ENV:TSMorph/def_dctv3 - DCTV 3 plane images using dctv.library
     ENV:TSMorph/def_dctv4 - DCTV 4 plane images using dctv.library
     ENV:TSMorph/def_iff   - 24 bit ILBM saved using opal.library
     ENV:TSMorph/def_ilbm  - 24 bit ILBM saved without opal.library
     ENV:TSMorph/def_jpg   - JPEG files saved using opal.library
     ENV:TSMorph/def_ppm   - PPM files

If the file does not exist then ENV:SYS/def_ilbm (etc.) is tried, if this does not exist then the default project Icon is used.

Default value is NO.

DEPTH=number
------------

This parameter indicates how deep the Morphing algorithm should search to find the points to use for morphing. The maximum value is 20 (higher values are accepted but will be taken as 20).

Default value is 2.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the value.

DX=number
---------

This parameter can be used to speed up the rendering process. The default value is 0.

If set to a number then only some Horizontal pixels will be generated. e.g. if set to 3 then only every 4th pixel will be generated. The others will be copied from the previous pixel. This can be overridden by using ARexx. Also see DY.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the value.

DY=number
---------

This parameter can be used to speed up the rendering process. The default value is 0.

If set to a number then only some Vertical pixels will be generated. e.g. if set to 1 then only every other line will be generated. The others will be copied from the previous line. This can be overridden by using ARexx. Also see DX.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the value.

EGS=YES/NO
----------

By default TSMorph-render does not show its output when rendering. If this parameter is set to YES then output will be displayed in an EGS window on the default EGS screen a line at a time. See requirements for library requirements.

This parameter is not available as a menu option, is not saved in settings files and can not be specified on a project Icon.

Default values is NO.

FILES=filename
--------------

This is only relevant to the Shell, only one name can be supplied - default is to show an ASL file requester for the file to run.

INTEGER=NO/YES
--------------

This parameter and menu item select if the render process should use integer or floating point arithmetic. The process will be faster if integer arithmetic is used (especially on machines without an FPU). However the output quality will not be so good.

If this parameter is set to YES then the ANTIALIAS parameter is ignored.

Default value is NO.

LOADSCRIPT=Scriptname/OFF
-------------------------

This specifies the name of an ARexx script to run before each image 24 bit image is loaded. This can be used to e.g. hold the images on disc in JPEG format to save space and convert each image back to 24 bit ILBM when required. Note however that TSMorph-render now has the ability to load a large variety of image formats (All ILBM including HAM6, HAM8, EHB, and DCTV with dctv.library, JPEG, TARGA, PPM, and GIF).

The default script is @{"Rexx/Loadscript" ALINK "Rexx/Loadscript.TSM/Main"}.

The version supplied does nothing.

Set to OFF to run no script.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the value.

MODE=0-31
---------

This parameter and menu item indicate how the Morphing algorithm should search to find the points to use for morphing.

The values are additive:

        1 : Leaves un-triangled point stationary
        2 : Searches all the closest points
        4 : Uses a squaring algorithm to find close points
        8 : Uses a Delaunay algorithm to find triangles
        16: Precalculate close points

Default value is 0.

POSTSCRIPT=Scriptname/OFF
-------------------------

This specifies the name of an ARexx script to run after each image is rendered. This can be used to build an animation or change the image format from 24 bit.

The default script is @{"Rexx/Postscript" ALINK "Rexx/Postscript.TSM/Main"}.

The version supplied does nothing.

Set to OFF to run no script.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the value.

PRESCRIPT=Scriptname/OFF
------------------------

This specifies the name of an ARexx script to run before each image is rendered. This can be used to produce only some of the frames and control the movement and colour of the images.

The default script is @{"Rexx/Prescript" ALINK "Rexx/Prescript.TSM/Main"}.

The version supplied does nothing.

Set to OFF to run no script.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the value.

PUBSCREENR=pubscreenname
------------------------

This gives the name of the Public Screen on which to open TSMorph-render windows - default is the default public screen.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the screen name.

QUALITY=number
--------------

This specifies the quality of output files. This option only applies if opal.library is available and SAVEFORMAT is JPEG or JPEGT. Possible values are 0 to 100.

Default value is 75.

It can be changed using the menu item (if reqtools.library is available), a requester is displayed allowing the input of the value.

REQTOOLS=YES/NO/ALL
-------------------

This controls the use of reqtools.library. If set to NO then reqtools will not be used (except in very unusual circumstances). It will still however be opened and closed. If set to YES then reqtools will be used for various requesters. If set to ALL then it will be used for the File Requesters as well.

This parameter is not available as a menu option, is not saved in settings files and can not be specified on a project Icon.

Default values is YES.

SAVEFORMAT=ILBM24/OPAL24/OPAL24T/OPAL24F/OPAL24FT/JPEG/JPEGT/PPM/BW16/BW256/HAM6/HAM8/DCTV3/DCTV4
-------------------------------------------------------------------------------------------------

This parameter and menu item specify the format TSMorph-render should use to save the output images. OPAL and JPEG formats are only available if opal.library is available. DCTV3 and DCTV4 formats are only available if dctv.library is available.

     ILBM24   - IFF 24 bit ILBM with no CAMG chunk
     OPAL24   - IFF 24 bit ILBM saved using opal.library
     OPAL24T  - as OPAL24 with a Thumbnail
     OPAL24F  - as OPAL24 in Fast Format
     OPAL24TF - as OPAL24F with a Thumbnail
     JPEG     - JPEG format using opal.library
     JPEGT    - as JPEG with a Thumbnail
     PPM      - PPM format
     BW16     - ILBM 16 colour grey scale
     BW256    - ILBM 256 colour grey scale
     HAM6     - ILBM 6 plane HAM
     HAM8     - ILBM 8 plane HAM
     DCTV3    - ILBM 3 plane DCTV using dctv.library
     DCTV4    - ILBM 4 plane DCTV using dctv.library

The quality of JPEG images can be set using the QUALITY parameter.

PPM format is basically uncompressed 24 bit. The files are therefore very large and it is suggested that a compressing file handler (such as XFH or EPU) is used. This format is provided mainly to allow the easy production of MPEG movies.

The save format also controls which Icon is saved with the image.

SETTINGS=filename
-----------------

This can only be supplied on the Shell command line, or an Icon Tool Type.

This specifies the name of a file to contain settings. See parameters.

TOOLPRI=number
--------------

This can only be supplied as a Tool Icon tool type. It sets the priority of the rendering process.

Setting to -1 is a good idea if you wish to run the program in the background. The default value is 0. Setting to positive values is generally not a good idea.

The Information Window
**********************

This window is always displayed when TSMorph is running. It displays information about the current project. The window title is TSMorph, the screen title will be displayed as the project name if the project has a name. It is used to set up all the information required by TSMorph-render.

Gadgets in Info Window
======================

@font topaz.font 8 The Information Window appears with gadgets:

<img src="Images/Info"><P>

     -----------------------------
     |.|TSMorph           |I-gad-Zoom|I-gad-Depth|
     |---------------------------|
     |Help Text|
     | File @{u}O@{uu}ne ............. X|
     | File @{u}T@{uu}wo ............. X|
     |24 File @{u}1@{uu} ............. X|
     |24 File @{u}2@{uu} ............. X|
     |    Width ...  Height ...|
     | Single @{u}F@{uu}rames.. St@{u}a@{uu}rt .|
     |     @{u}N@{uu}ame ............  X|
     |Edit Points...|
     -----------------------------

Help Text gadget
----------------

This gadget displays short help messages.

From release 3.0 and up it displays more information. See also Continuous Help.

File One gadget
---------------

This gadget allows the editing of the file name of the first image to be used when editing points. This gadget is disabled if the Edit Windows are currently open. The file name can be either edited in the string gadget or by using the Get File to display an ASL file requester.

This image should be a Workbench displayable version of the first 24 bit file. (See OPENMODE for what images can be loaded.) It is displayed in the first Edit Window when editing points.

o can be used to activate this gadget - see Keyboard.

See File naming for how to specify the file name.

Get File One gadget
-------------------

This gadget displays an ASL file requester to select the file to appear in the File One gadget.

o with shift is the same as using this gadget - see Keyboard.

File Two gadget
---------------

This gadget is the same as the File One gadget for the second displayable image. This image should be the same size as the first.

t can be used to activate this gadget - see Keyboard.

See File naming for how to specify the file name.

Get File Two gadget
-------------------

This gadget displays an ASL file requester to select the file to appear in the File Two gadget.

t with shift is the same as using this gadget - see Keyboard.

24 File 1 gadget
----------------

This gadget allows the editing of the file name of the first image to be used when morphing. The file name can be either edited in the string gadget or by using the Get File to display an ASL file requester.

This image should be a 24 bit version of the first displayable file. Also see the LOADSCRIPT parameter. Note: TSMorph now has the ability to load a large variety of images as 24 bit files. If this gadget is left blank then the name from the first displayable file is used.

1 can be used to activate this gadget - see Keyboard.

See File naming for how to specify the file name.

Get 24 File 1 gadget
--------------------

This gadget displays an ASL file requester to select the file to appear in the 24 File 1 gadget.

1 with shift is the same as using this gadget - see Keyboard.

24 File 2 gadget
----------------

This gadget allows the editing of the file name of the last image to be used when morphing. The file name can be either edited in the string gadget or by using the Get File to display an ASL file requester.

This image should be a 24 bit version of the second displayable file. Also see the LOADSCRIPT parameter. Note: TSMorph now has the ability to load a large variety of images as 24 bit files. If this gadget is left blank then the name from the second displayable file is used.

If Single Image mode is selected then this is ignored.

2 can be used to activate this gadget - see Keyboard.

See File naming for how to specify the file name.

Get 24 File 2 gadget
--------------------

This gadget displays an ASL file requester to select the file to appear in the 24 File 2 gadget.

2 with shift is the same as using this gadget - see Keyboard.

Width gadget
------------

This gadget displays the width of the images being edited. If images have not been selected then it should display the maximum width of the current points.

Height gadget
-------------

This gadget displays the height of the images being edited. If images have not been selected then it should display the maximum height of the current points.

Single image gadget
-------------------

This gadget cycles between Morphs, Warps, Animated Morphs and Animated Warps.

In Warp mode one image is distorted based on the control points.

In Morph mode one image is distorted/recoloured into a second image based on control points.

In animated Warps and Morphs the input images can change on each output frame.

r and R can be used to cycle this gadget forward and backward - see Keyboard.

Note: Animated Warps/Morphs are only available if Reqtools is available.

Number of Frames gadget
-----------------------

This gadget can be used to specify the number of frames to generate.

In Single mode the total number of frames will be this number plus the first image.

In dual mode the total number of frames is the first image, this number and the last image.

f can be used to activate this gadget - see Keyboard.

This gadget is disabled if Images are displayed and an animated Morph/Warp is being edited.

Start Frame gadget
------------------

This gadget can be used to specify the number to use in the Name of the first generated file. This number is then incremented by 1 for each subsequent frame.

a can be used to activate this gadget - see Keyboard.

This gadget is disabled if Images are displayed and an animated Morph/Warp is being edited.

Anim file Name gadget
---------------------

This gadget is used to name the files produced by TSMorph-render.

The file name can be either edited in the string gadget or by using the Get File to display an ASL file requester.

The file name should contain the characters %ld. These characters will be replaced by the frame number, starting from that specified in the Start gadget.

n can be used to activate this gadget - see Keyboard.

See File naming for further information on how to specify the file name.

Get Anim file Name gadget
-------------------------

This gadget displays an ASL file requester to select the file to appear in the Name gadget.

n with shift is the same as using this gadget - see Keyboard.

Edit Points... gadget
---------------------

This button gadget has the same effect as the Edit Points menu option. It opens the Control Window and Edit Windows to allow editing of the control points. If these windows are already open then the Control Window is activated.

p is the same as using this gadget - see Keyboard.

Close gadget
------------

This is a standard close gadget. Clicking quits the program.

If the current project has been changed but not saved then the Unsaved Project requester is displayed.

Zoom gadget
-----------

This is a standard Zoom gadget which switches the window between full size and a title bar and the help text.

Depth gadget
------------

This is a standard depth gadget.

Menus on the Info Window
========================

The following menus are available on the Information Window:

Info Window Project menu
------------------------

This menu contains the following items with their associated Amiga short-cuts in the Info Window:

Info Window Project/New menu item
.................................

This menu item creates a new project.

If the current project has been changed but not saved then the Unsaved Project requester is displayed.

Info Window Project/Open menu item
..................................

This menu item allows the loading of a previously created Parameter file.

If the current project has been changed but not saved then the Unsaved Project requester is displayed.

Info Window Project/Save menu item
..................................

This saves the current project using the current name. If the project does not yet have a name then an ASL file requester is displayed.

See File Format.

Info Window Project/Save As... menu item
........................................

This saves the current project using a name chosen suing an ASL file requester.

See File Format.

Info Window Project/Delete... menu item
.......................................

This can be used to delete a Project. It will delete the main file, its icon (if present) and any associated Anim points files.

See File Format.

Info Window Project/About... menu item
......................................

This displays some program version information in the About Requester.

Info Window Project/Quit menu item
..................................

This quits TSMorph.

If the current project has been changed but not saved then the Unsaved Project requester is displayed.

Info Window Project/Preview... menu item
........................................

This menu item renders the image using the ARexx script supplied in the PREVIEW parameter.

If required it first displays the Frame Number requester.

This menu option is only available if reqtools.library is available.

If the current project has been changed but not saved then the Unsaved Project requester is displayed.

Info Window Project/Edit Points menu item
.........................................

This is the same as the Edit Points gadget.

It opens the Control Window and Edit Windows to allow editing of the control points. If these windows are already open then the Control Window is activated.

Keyboard controls in the Info Window
====================================

The following keyboard controls are available in the Info Window:

     o  Activate File One gadget
        With shift - show file requester - see Get File One.

     t  Activate File Two gadget
        With shift - show file requester - see Get File Two.

     1  Activate 24 File 1 gadget
        With shift - show file requester - see Get 24 File 1.

     2  Activate 24 File 2 gadget
        With shift - show file requester - see Get 24 File 2.

     rR Cycle Single image gadget.

     f  Activate Frames gadget.

     a  Activate Start gadget.

     n  Activate Name gadget
        With shift - show file requester - see Get Name.

     p  Same as Edit Points gadget

Help displays context sensitive help using amigaguide if available.

The Control Window
******************

The control window displays various gadgets for different for different point editing modes. The title bar displays the current editing mode as does the Mouse pointer. The screen title bar displays TSMorph for non-animated Warps/Morphs and TSMorph - Frame nnn for animated Warps/Morphs.

Control and Image Window gadgets
================================

@font topaz.font 8 The Control Window appears with gadgets:

<img src="Images/Contrl"><P>

     --------------
     |.| Mov |Con-gad-Depth|
     |------------|
     |ONETWO|
     |RELADD|
     |DELLNK|
     |UNLMOV|
     ||<<?>>||
     --------------

Most are used to set the edit mode. The rest except the close and depth gadgets are used to set the current Frame Number.

Control Window First Frame gadget
---------------------------------

This gadget goes to the first frame. This is the same as the First menu item.

This gadget is disabled if the Morph/Warp is not animated, or the first frame is already displayed.

Control Window Previous Frame gadget
------------------------------------

This gadget goes to the previous frame. This is the same as the Previous menu item.

This gadget is disabled if the Morph/Warp is not animated, or the first frame is currently displayed.

Control Window Goto Frame gadget
--------------------------------

This gadget goes to a chosen frame. This is the same as the Goto menu item. It displays the Frame Number Requester.

This gadget is disabled if the Morph/Warp is not animated.

Control Window Next Frame gadget
--------------------------------

This gadget goes to the next frame. This is the same as the Next menu item.

This gadget is disabled if the Morph/Warp is not animated, or the last frame is currently displayed.

Control Window Last Frame gadget
--------------------------------

This gadget goes to the last frame. This is the same as the Last menu item.

This gadget is disabled if the Morph/Warp is not animated, or the last frame is already displayed.

Control Window Close gadget
---------------------------

This closes the Control Window, and the Edit Windows.

Control Window Depth gadget
---------------------------

This is a standard depth gadget.

Control and Edit Windows menus
==============================

The following menus are available on the Control and Edit Windows:

Control and Edit Windows Project menu
-------------------------------------

This menu contains the following items with their associated Amiga short-cuts in the Control and Edit Windows:

Control and Edit Window Project/New Points menu item
....................................................

This menu item deletes all existing points.

Control and Edit Window Project/Open Points menu item
.....................................................

This menu item allows the loading of a previously created Parameter file.

Only the points are loaded from the file. Other parameters are retained.

If the current project has been changed but not saved then the Unsaved Project requester is displayed.

Control and Edit Window Project/Save menu item
..............................................

This saves the current project using the current name. If the project does not yet have a name then an ASL file requester is displayed.

See File Format.

Control and Edit Window Project/Save As... menu item
....................................................

This saves the current project using a name chosen using an ASL file requester.

See File Format.

Control and Edit Window Project/About... menu item
..................................................

This displays some program version information in the About Requester.

Control and Edit Window Project/Exit Points menu item
.....................................................

This is the same as closing the Control Window or either of the Edit Windows. It closes all of these windows.

Control and Edit Window Project/Quit menu item
..............................................

This quits TSMorph.

If the current project has been changed but not saved then the Unsaved Project requester is displayed.

Control and Edit Windows Project/Preview... menu item
.....................................................

This menu item renders the image using the ARexx script supplied in the PREVIEW parameter.

If required it first displays the Frame Number requester.

This menu option is only available if reqtools.library is available.

If the current project has been changed but not saved then the Unsaved Project requester is displayed.

Control and Edit Window Edit menu
---------------------------------

This menu contains the following items with their associated Amiga short-cuts in the Control and Edit Windows:

Control and Edit Window Edit/Add Grid... menu item
..................................................

This menu item displays the Add Grid requester to add a grid of points to the images.

Control and Edit Window Edit/Triangulate menu item
..................................................

This menu item deletes all links between points and attempts to convert them to triangles (similar to the MODE=24 option of TSMorph-render). If the current project has been changed then the Unsaved Project requester is displayed.

Control and Edit Windows Frame sub menu
.......................................

This sub menu contains the following items with their associated Amiga short-cuts in the Control and Edit Windows:

Control and Edit Windows Frame/First menu item
**********************************************

This menu item goes to the first frame. This is the same as the First gadget.

This menu item is disabled if the Morph/Warp is not animated, or the first frame is already displayed.

Control and Edit Windows Frame/Previous menu item
*************************************************

This menu item goes to the previous frame. This is the same as the Previous gadget.

This menu item is disabled if the Morph/Warp is not animated, or the first frame is already displayed.

Control and Edit Windows Frame/Goto menu item
*********************************************

This menu item goes to a chosen frame. This is the same as the Goto gadget. It displays the Frame Number Requester.

This menu item is disabled if the Morph/Warp is not animated, or the first frame is already displayed.

Control and Edit Windows Frame/Next menu item
*********************************************

This menu item goes to the next frame. This is the same as the Next gadget.

This menu item is disabled if the Morph/Warp is not animated, or the last frame is already displayed.

Control and Edit Windows Frame/Last menu item
*********************************************

This menu item goes to the last frame. This is the same as the Last gadget.

This menu item is disabled if the Morph/Warp is not animated, or the last frame is already displayed.

Control and Edit Window Edit/Mode sub menu
..........................................

This sub menu contains the following items with their associated Amiga short-cuts in the Control and Edit Windows:

Settings menu
-------------

This menu contains the following items with their associated Amiga short-cuts in the Control, Info and Edit Windows. Settings can be set using Parameters. All menu items which display requesters will not be available if reqtools.library is not available. Items requiring opal.library will not be available if opal.library is not available.

Setting/Load Settings... menu item
..................................

This displays an ASL requester to load settings into the currently running program.

The default name is TSMorph.prefs.

Settings/Save Settings menu item
................................

This saves the current settings in ENVARC:TSMorph/TSMorph.prefs and ENV:TSMorph/TSMorph.prefs.

If CREATEICONSP is set then an Icon is saved as well

Unless KEEPSETTINGS is set to NO current settings are saved in ENV:TSMorph/TSMorph.prefs whenever TSMorph is quit.

Setting/Save Settings As... menu item
.....................................

This displays an ASL requester to save the current settings.

If CREATEICONSP is set then an Icon is saved as well

The default name is TSMorph.prefs.

Setting/Reset To Defaults menu item
...................................

This resets settings to there default values.

If some Image windows are open and CHANGEPALETTE is set to OFF then it will stay OFF. The same applies to ZOOM.

Settings/Last Saved menu item
.............................

This reset settings to the values last saved in ENVARC:TSMorph/TSMorph.prefs (overridden by any Tool Types).

If some Image windows are open and CHANGEPALETTE is set to OFF then it will stay OFF. The same applies to ZOOM.

Setting/Restore menu item
.........................

This resets settings to the values last saved in ENV:TSMorph/TSMorph.prefs (overridden by any Tool Types). Settings are saved in this file whenever TSMorph is quit if KEEPSETTINGS is set to YES.

If some Image windows are open and CHANGEPALETTE is set to OFF then it will stay OFF. The same applies to ZOOM.

Keyboard controls in the Control Window
=======================================

Help displays context sensitive help using amigaguide if available.

The Edit Windows
****************

The Edit windows display Workbench displayable versions of the images to be morphed along with the control points. The window title displays the file name, the screen title displays the full file name. The mouse pointer shows the current editing mode. The windows are sizeable and have scrollbars. The menus displayed are the same as the Control Window.

The first click in these windows is ignored.

If EGS is being used then the windows are displayed on the EGS screen without menus. Keyboard short cuts 1-8 are still available. The windows do not, however, automatically scroll.

Gadgets on the Edit Windows
===========================

@font topaz.font 8 The Edit Windows appears with gadgets:

<img src="Images/Image"><P>

     --------------------
     |.|filename |E-gad-Zoom|E-gad-Depth|
     |------------------|
     |              |   |
     |              ||||
     |              ||||
     |              ||||
     |              ||||
     |              |/||
     |              |\||
     |------------------|
     |-------<-->|//|
     --------------------

Edit Windows Horizontal gadget
------------------------------

This gadget can be used to scroll the image horizontally.

Edit Windows Vertical gadget
----------------------------

This gadget can be used to scroll the image vertically.

Edit Windows Up gadget
----------------------

This gadget can be used to scroll the image up.

Holding down shift will cause the window to scroll one pixel at a time.

Edit Windows Down gadget
------------------------

This gadget can be used to scroll the image down.

Holding down shift will cause the window to scroll one pixel at a time.

Edit Windows Left gadget
------------------------

This gadget can be used to scroll the image left.

Holding down shift will cause the window to scroll one pixel at a time.

Edit Windows Right gadget
-------------------------

This gadget can be used to scroll the image right.

Holding down shift will cause the window to scroll one pixel at a time.

Edit Windows Close gadget
-------------------------

This closes the Control Window, and the Edit Windows.

Edit Windows Zoom gadget
------------------------

This is a standard Zoom gadget. It swaps the size between maximum and minimum

Maximum is the smaller of the size of the image or the size of the screen.

Minimum is the minimum required for all gadgets to still be visible.

Edit Windows Depth gadget
-------------------------

This is a standard depth gadget.

Edit Windows Sizing gadget
--------------------------

This a standard sizing gadget. See Zoom gadget for the sizing limits

Keyboard controls in the Edit Windows
=====================================

The number keys can be used to set the Edit Mode.

Help displays context sensitive help using amigaguide if available.

Point editing modes
*******************

The following edit modes are available to edit points:

Note: The menu button can always be used to abort the current operation before releasing the select button.

Modes can be set using gadgets in the Control Window or by using menus on the Control and Edit Windows.

Edit Mode One
=============

This mode is used to move a point in one of the Edit Windows.

The Control Windows title is set to One.

The Mouse Pointer is set to ONE.

Points can be clicked and moved in either of the windows with the mouse - the point will only move in the selected window.

Edit Mode Two
=============

This mode is used to move a point in both of the Edit Windows.

The Control Windows title is set to Two.

The Mouse Pointer is set to TWO.

Points can be clicked and moved in both of the windows with the mouse - the point will move in both windows to the same absolute position.

Edit Mode Relative
==================

This mode is used to move a point in both of the Edit Windows.

The Control Windows title is set to Rel.

The Mouse Pointer is set to REL.

Points can be clicked and moved in both of the windows with the mouse - the point will move in both windows to the same relative position.

Edit Mode Add
=============

This mode is used to add a point in both of the Edit Windows.

The Control Windows title is set to Add.

The Mouse Pointer is set to ADD.

Points can be added in either of the windows by clicking the mouse - the point will added to both windows to the same absolute position.

Edit Mode Delete
================

This mode is used to delete a point in both of the Edit Windows.

The Control Windows title is set to Del.

The Mouse Pointer is set to DEL.

Points can be deleted in either of the windows by clicking the mouse - the point will deleted from both windows. Any links will also be removed.

Edit Mode Link
==============

This mode is used to link two points in both of the Edit Windows.

The Control Windows title is initially set to L1.

The Mouse Pointer is set to L1.

A point can then be selected in either of the windows by clicking the mouse.

The Control Windows title is then set to L2.

The Mouse Pointer is set to L2.

Another point can then be selected in either of the windows by clicking the mouse. The points will be joined by a line.

Note: this line is to enable points to be identified more easily. It is not used by the rendering process.

Edit Mode Unlink
================

This mode is used to unlink two linked points in both of the Edit Windows.

The Control Windows title is initially set to U1.

The Mouse Pointer is set to U1.

A point can then be selected in either of the windows by clicking the mouse.

The Control Windows title is then set to U2.

The Mouse Pointer is set to U2.

Another point can then be selected in either of the windows by clicking the mouse. If the points are currently joined then the line will be removed.

Edit Mode Move
==============

In this mode no points are edited.

The Control Windows title is set to Mov.

The Mouse Pointer is set to Mov.

Clicking in the window and moving the mouse will scroll the window.

This is the initial mode when the Edit Windows are opened.

If EGS is being used then the windows will not scroll.

Requesters which appear
***********************

The following requesters are produced:

Unsaved project requester
=========================

This requester is displayed when attempting to quit, preview render or triangulate without having saved a project.

It displays 3 or 4 options (depending on if amigaguide is available):

     Save:    Save the project and quit, render or triangulate
     Help:    Display help (only shown if available)
     Abandon: Quit, preview or triangulate without saving the project
     Cancel:  Do not save and do not quit, preview or triangulate

If reqtools.library(38) is available then this will be used and keyboard short-cuts (the first character of the option) will be available and underlined.

About requester
===============

This requester is displayed when About... is chosen on a menu on the Info Window or Control or Edit Windows. It displays version information.

If reqtools.library(38) is available then this will be used and keyboard short-cuts (the first character of the option) will be available and underlined.

Error requesters
================

This requester is displayed if an error occurs. It displays an error message and gives one (or two) options.

If amigaguide is available then the first option will be Help - this will display detailed information on the error message.

The last option is Quit for fatal errors, and OK for non fatal errors.

See Errors for details on error messages.

If reqtools.library(38) is available then this will be used and keyboard short-cuts (the first character of the option) will be available and underlined.

If EGS is being used and the edit windows are open then the requester will appear on the EGS screen.

Add Grid requester
==================

@font topaz.font 8 The Add Grid requester appears as below when the Add Grid... menu item is chosen

<img src="Images/AddGrid"><P>

     ----------------
     |.|Add Grid|Req-Add_Grid-gad-Depth|
     |--------------|
     | @{u}X@{uu} Cells ... |
     | @{u}Y@{uu} Cells ... |
     |              |
     | OK Cancel|
     ----------------

The following gadgets are displayed in the requester with their associated keyboard equivalents:

Add Grid X Cells gadget
-----------------------

This gadget is used to input the number of horizontal cells of points to add. The minimum number is 1. The default value displayed is 5.

This gadget can be activated by using the X key.

Add Grid Y Cells gadget
-----------------------

This gadget is used to input the number of vertical cells of points to add. The minimum number is 1. The default value displayed is 5.

This gadget can be activated by using the Y key.

Add Grid OK gadget
------------------

Selecting this gadget adds points of cells to the images. The number of horizontal cells can be set in the X Cells gadget and the number of vertical cells in the Y Cells gadget.

The O key is the same as using this gadget.

Add Grid Cancel gadget
----------------------

This gadget cancels the Add Grid requester without adding any points.

The C key is the same as using this gadget.

Add Grid Close gadget
---------------------

This is the same as the Cancel gadget and cancels the requester.

Add Grid Depth gadget
---------------------

This is a standard depth gadget.

Choose a Frame Number requester
===============================

This requester is displayed when the Edit Points gadget is selected (and there is more than one frame) on an animated Morph/Warp, or the Goto gadget or Goto menu item is selected, or the Preview... or Preview... menu item is selected.

It displays the first and last frame number and allows input of the required frame number.

It displays OK, Help (if amigaguide is available) and Cancel gadgets. The keyboard shortcuts (O,H and C) are underlined.

Progress requester
==================

This requester is displayed by TSMorph-render. It shows a list view of information messages, and the current frame and line being calculated.

It also displays a stop button and a zoom and depth gadget.

The stop gadget is checked every line. Clicking it displays the Really quit? requester allowing the program to be stopped.

The Help key displays help.

Really quit? requester
======================

This requester is displayed when the stop gadget is clicked on the Progress requester. It displays two (or three) options Quit (Help) and Continue. Quit quits the program, Continue restarts the calculation, Help is displayed if amigaguide is available and displays help.

If reqtools.library(38) is available then this will be used and keyboard short-cuts (the first character of the option) will be available and underlined.

Changing the Interface
**********************

All the gadgets in the Control window, and the mouse pointers can be edited.

The brushes are stored in the directory Brush/. All may be edited and using e.g. DPaint.

The following brushes are size 38x34:

     add
     del
     link
     none
     one
     rel
     two
     unlink

The following are 15x15:

     1st
     Last
     Next
     Prev

The following is 16x15:

     Goto

The mouse pointers are stored in the directory Cursor/. All may be edited using the Workbench Pointer editor.

The following Pointers can be edited:

     Xadd
     Xdel
     Xl1
     Xl2
     Xmov
     Xone
     Xrel
     Xtwo
     Xu1
     Xu2

Internal file formats
*********************

The file format is subject to change at any time.

The current format for the main file is:

     TSMorph 1.2
     file_name_one
     file_name_two
     24_bit_file_name_1
     24_bit_file_name_2
     anim_file_name
     w=a,h=b,Frames=c,Single=d,Start=e
     x=n,y=m,x1=o,y1=p
     .
     .
     .
     p1=i,p2=j
     .
     .
     .

where TSMorph 1.2 is a header record (not present in the previous version of TSMorph, old formats can still be loaded producing a warning message), a is the width, b the height, c the number of frames, d is 0 for Morph, 1 for Warp, 2 for Anim Morph and 3 for Anim Warp, e is the start frame number, n,m are coordinates on the first image, o,p on the second image, and i and j are the number of the points to join (starting from 0).

For animated Warps and Morphs the main file contains no points. Each frame has a set of points held in a file named with .nnn after the main file name, where nnn is the frame number. This file has a header of TSMorph 2.0 and then has the Points details.

ARexx interface to TSMorph-render and TSMorph
*********************************************

ARexx scripts are run before and after each image is rendered, and before each 24 bit image is loaded. The script names can be supplied as parameters (LOADSCRIPT, PRESCRIPT and POSTSCRIPT) to TSMorph-render.

An ARexx script can also be run by TSMorph to preview render an image. The script name is supplied in the PREVIEW parameter.

The suffix to each ARexx script should be .TSM.

ARexx script run before loading 24 bit image
============================================

This script is run before each 24 bit ILBM image is loaded.

It is passed the following parameters:

     Frame       : The current frame number, starting at Start.
     TotalFrames : The total number of frames being rendered.
     Single      : Set to 1 if a Warp, 0 for a Morph, 2 for Anim Morph, 3 for Anim Warp.
     Image       : Set to 0 for 1st image, 1 for second.
     FileName    : Name of file just rendered.

This script can be used to change the format of the input file (by running it through a conversion program).

One example is included:
<P>

     @{"Loadscript.TSM" ALINK "Rexx/Loadscript.TSM/Main"} - Do nothing example

ARexx script run before rendering
=================================

This script is run before each image is rendered.

It is also called for the first image (for warps and morphs) and for the last image (for morphs). By default the first and last frames are not rendered. Produce will need to be set to 1 to output these frames. This allows the first and last frames to be converted to the same format as the other output images.

It is passed one parameter - Base - the address of a structure which contains the following:

     Frame       = 0  : The current frame number, starting at 1 (0 for 1st frame) - read only.
     TotalFrames = 1  : The total number of frames being rendered - read only.
     Single      = 2  : Set to 1 if a Warp, 0 = Morph, 2 = Anim Morph, 3 = Anim Warp - read only.
     Movement    = 3  : 0 to 1024 - the proportion of movement from first to second image.
     Red1        = 4  : 0 to 1024 - the proportion of Image 1 Red to use.
     Green1      = 5  : As Red1 for Green.
     Blue1       = 6  : As Red1 for Blue.
     Red2        = 7  : 0 to 1024 - the proportion of Image 2 Red to use.
     Green2      = 8  : As Red2 for Green.
     Blue2       = 9  : As Red2 for Blue.
     Produce     = 10 : Set to 0 to not render this frame, 1 otherwise.
     RPlus       = 11 : 0 to 255 to add to Red in rendered image.
     GPlus       = 12 : As RPlus for Green.
     BPlus       = 13 : As RPlus for Blue.
     RMinus      = 14 : 0 to 255 to subtract from Red in rendered image.
     GMinus      = 15 : As RMinus for Green.
     BMinus      = 16 : As RMinus for Blue.
     DX          = 17 : 0 to ? - X amount to skip - see parameters.
     DY          = 18 : 0 to ? - Y amount to skip - see parameters.
     Start       = 19 : Starting frame number.

The values of these parameters may be set and read using the GetValue and StoreValue functions:

     /* To read the value of e.g. Movement use:
        integer_variable = GetValue(Base,Movement)
     */

     /* To set the value of e.g. Produce to 0 use:
        call StoreValue(Base,Produce,0)
     */

     GetValue:Procedure
        Parse arg XBase, XAdd
        return C2D(IMPORT(D2C(STRIP(XBase) + (STRIP(Xadd) * 4)),4))

     StoreValue:Procedure
        Parse arg XBase, XAdd, XVal
        call EXPORT(D2C(STRIP(XBase) + (STRIP(Xadd) * 4)),RIGHT(D2C(XVal),4,D2C(0)),4)
        return

The default values passed to the script for modification are:

     Movement            : (1024 * Frame)/(TotalFrames + 1) Morphs
                           (1024 * Frame)/TotalFrames       Warps

     Red1,Green1,Blue1   : Movement                         Morphs
                           1024                             Warps

     Red2,Green2,Blue2   : (1024 - Movement)                Morphs
                           0                 Irrelevant for Warps

     Produce             : 1                                Rendered frames
                           0                 Frames 0 and TotalFrames+1
     RPlus,GPlus,BPlus   : 0
     RMinus,GMinus,BMinus: 0
     DX,DY               : Initially set by DX and DY parameters

Changing these values allows acceleration of movement, colour fades etc. and the generation of only some images (to check a long animation).

Example scripts included are:
<P>

     @{"FadeToBlack.TSM" ALINK "Rexx/FadeToBlack.TSM/Main"} - Warp fade to black
     <P>
     @{"FadeToWhite.TSM" ALINK "Rexx/FadeToWhite.TSM/Main"} - Warp fade to white
     <P>
     @{"PixelMorph.TSM" ALINK "Rexx/PixelMorph.TSM/Main"}  - Morph by pixelating
     <P>
     @{"PixelWarp.TSM" ALINK "Rexx/PixelWarp.TSM/Main"}   - Warp pixelating
     <P>
     @{"PreAll.TSM" ALINK "Rexx/PreAll.TSM/Main"}      - Render all images
     <P>
     @{"Prescript.TSM" ALINK "Rexx/Prescript.TSM/Main"}   - Do nothing example

ARexx script run after rendering
================================

This script is run after each image is rendered.

It is passed the following parameters:

     Frame       : The current frame number, starting at Start.
     TotalFrames : The total number of frames being rendered.
     Single      : Set to 1 if a Warp, 0 for a Morph.
     FileName    : Name of file just rendered.

This script can be used to change the format of the output file (by running it through a conversion program) or build an animation.

Three examples are included:
<P>

     @{"PostAnim.TSM" ALINK "Rexx/PostAnim.TSM/Main"}   - Convert to Anim
     <P>
     @{"Postscript.TSM" ALINK "Rexx/Postscript.TSM/Main"} - Do nothing example
     <P>
     @{"ToHam.TSM" ALINK "Rexx/ToHam.TSM/Main"}      - Convert using PPM and Wasp

ARexx script to preview render
==============================

This script is run if the Preview... or Preview... menu item is selected. Its purpose is to preview render the image (it can actually do anything you like).

Before being called the current Settings are saved in T:TSMorph.prefs.

It is passed the following parameters:

     Frame    : The frame number to render
     FileName : The file name of the points file

Two examples are included:
<P>

     @{"Preview.TSM" ALINK "Rexx/Preview.TSM/Main"} - Render and display 16 grey scale image
     <P>
     @{"PreAnim.TSM" ALINK "Rexx/PreAnim.TSM/Main"} - Render and display 16 grey scale Anim

Morphing algorithms
*******************

The morphing algorithm is defined using the parameters MODE and DEPTH to TSMorph-render.

The basic algorithm is to find 3 points which make a triangle around the point and morph this triangle between the start and end images.

The DEPTH parameter controls how many points will be checked to form a triangle. 0 means just the closest 3 points are examined, 1 the closest 4, 2 the closest 5 etc.

The MODE parameter controls both which triangle is chosen and what to do if no surrounding triangle is found.

If MODE=0 2 4 ... 30 (i.e. bit 1 not set [do not add 1]) then if no triangle surrounding the point is found examining the closest points then the 3 closest points are used to decide how to morph. Otherwise the point is assumed to be stationery.

If MODE=2 3 6 7 ... 30 31 (i.e. bit 2 set [add 2]) then all the closest points (the exact number controlled by DEPTH) are examined to determine the smallest triangle. Otherwise the first surrounding triangle found is used.

If MODE=4 5 6 7 12 ... (i.e. bit 3 set [add 4]) then a square algorithm is used to find the closest points. Otherwise all points are examined. Although using these MODEs could theoretically make the program run faster, it seems to generally run slower.

If MODE=8 9 10 ... (i.e. bit 4 set [add 8]) then a Delauany triangle algorithm is used to find triangles. For these modes the DEPTH parameter should normally be set to 0. Also floating point calculations are still done even if INTEGER is set to YES.

If MODE=16 17 ... (i.e. bit 8 set [add 16]) then the closest triangles are only calculated once at the start (based on the average of start and end). This should only be used if the points do not move a lot between the start and end images. It can speed things up a lot for a lot of frames. It does not make sense to use this for Animated Warps/Morphs. This uses a lot of memory:

         (DEPTH + 4) * Image_Width * Image_Height * 4

         e.g. 640x512 image, DEPTH=2 uses 7.5 MB (contiguous) memory

Therefore MODEs 0 and 1 should be faster than modes 2 or 3. The DEPTH parameter can also have a major effect on the rendering speed.

See Benchmarks.

Benchmarks
==========

These benchmarks are based on a Morph provided by "Al Bet Sam That I'm Not Eloquent, Nancy Colours Eggs" <91016@tayloru.edu> of two 150x150 images with 41 control points.

Times are in seconds to generate the first frame on a 28MHz 68040 running in 32bit fast ram.

                ----------------------------------------------
                | 040 version  | 881 version  | 000 version  | Note all running on a 68040
                ----------------------------------------------
                |INT |   FPU   |INT |   FPU   |INT |   FPU   |   INTEGER=YES/NO/NO
     ---------------------------------------------------------
     |MODE|DEPTH|    |    | AA |    |    | AA |    |    | AA | ANTIALIAS=NO/NO/YES
     ---------------------------------------------------------
     |  0 |  0  | 6.2| 9.1|13.9|    |11.9|    |    |    |    | Shows the effect of DEPTH
     |    |  5  |12.0|15.2|    |    |    |    |    |    |    |
     ---------------------------------------------------------
     |  0 |  2  | 8.4|11.4|17.0| 8.8|14.1|18.5| 9.4|63.8|80.9| On a 68000 with 1MB chip ram, no
     |  1 |     | 8.1|    |    | 8.5|    |    |   x|    |    | fast ram...
     |  2 |     | 8.9|    |    |    |    |    |    |    |    |
     |  4 |     |13.4|    |22.8|13.6|    |23.3|    |    |    | x = 262  (9.4 * 28)
     |  8 |     | 7.6|    |    |    |    |    |    |    |    |
     | 16 |     | 2.8|    |10.7|    |    |12.1|    |    |    |
     | 17 |     | 2.5|    | 8.9| 2.6|    |10.3| 3.2|    |45.5|
     ---------------------------------------------------------
     |  8 |  0  | 6.4|    |    |    |    |    |    |    |    |
     ---------------------------------------------------------
     | 15 |  0  | 7.1|    |    |    |    |    |    |    |    |
     ---------------------------------------------------------
     | 16 |  0  | 1.7| 4.6| 9.5| 1.7| 6.7|10.6| 2.5|56.0|    |
     ---------------------------------------------------------

File naming
***********

File names can include the frame number.

The format of the frame number in the file name is specified using the following formats:

     %ld     : Number left justified e.g.  '1','2',..,'10',..,'123',..
     %3ld    : Number right justified e.g. '  1','  2',..,' 10',..,'123',..
     %03ld   : Number right justified e.g. '001','002',..,'010',..,'123',..

Where the number can be changed e.g.

     pic.%04ld   for Imagine 2.0 produced files
     pic%03ld    for Vista produced files
     name%ld     for files to run through mpeg

Error Messages
**************

The following messages can be displayed in an Error Requester.

Error - Both Images must be the same size
=========================================

This message should never be displayed. Images different sizes should be displayed instead.

Resolution - None required.

Unable to Open Grid Requester
=============================

TSMorph is unable to open the Add Grid requester. The normal reason would be lack of memory.

Resolution - Free up some memory and retry.

Error - Both X Cells and Y Cells must be > 0
============================================

This message is displayed if the Add Grid requester is used and either the X Cells or Y Cells is set to 0. The minimum allowed value is 1.

Resolution - Input at least 1 in both gadgets, or cancel the requester.

Error - Out of memory for points
================================

This message is displayed after the Add Grid requester has been used and points and lines are being added to the images. Insufficient memory is available.

Resolution - Since it is possible that some of the points have been added to the images then you may wish to use the New Points menu item to delete all points. Then free up some memory and retry.

Error - No ILBM.BMHD chunk
==========================

The Image being loaded has no BMHD chunk.

Resolution - Specify the name of a correct ILBM image.

Error - Failed to allocate raster
=================================

There is insufficient memory to load the ILBM image.

Resolution - Free up some memory and retry.

Error - No ILBM.BODY chunk
==========================

The Image being loaded has no BODY chunk.

Resolution - Specify the name of a correct ILBM image.

Error - Not an ILBM
===================

The Image being loaded is not and ILBM file.

Resolution - Specify the name of a correct ILBM image.

Error - Clipboard open failed
=============================

The program is unable to open the specified clipboard.

Resolution - Retry with the correct clipboard number, or use a different file name.

Error - xxxx; File open failed
==============================

File xxxx can not be successfully opened. The file does not exist (if trying to read), is already in use, or the filename is invalid.

Resolution - Retry with a valid file name.

Error - Parsing error; no top chunk
===================================

This is a technical error which should never occur.

Resolution - Unknown.

Error - Not enough memory
=========================

There is insufficient memory to save or load the IFF ILBM file.

Resolution - Free up some memory and retry.

Error - Failure opening TSMorph Window
======================================

The Information Window window could not be opened. There is probably insufficient memory.

Resolution - Free up some memory and retry.

Error - Failure setting up screen
=================================

The Information Window window could not be opened. Either the Public Screen is not open or there is insufficient memory.

Resolution - Free up some memory and retry, or correct the PUBSCREEN parameter.

Error - Can not Open xxxx.library(n)
====================================

The library xxxx version number n could not be opened. See Requirements for a list of libraries required. It could just be a lack of memory.

Resolution - Ensure you are running at least version 2.04 of the operating system, or free up some memory and retry.

Error - Unable to Allocate FileRequest
======================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Unable to Create Window Message Port
============================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Can not Open input.device
=================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Image smaller than points
=================================

The image trying to be loaded is smaller than the points already defined.

Resolution - Load a larger image, or select the New menu item and restart.

Error - Images different sizes
==============================

This can be displayed when opening the second image in TSMorph. Both images must have the same horizontal and vertical resolutions. The image depths can be different.

Resolution - Either use a different pair of images, or change the size of one of the images using some image-processing program.

Error - Unable to Allocate Zoom raster
======================================

Insufficient memory is available.

Resolution - Free up some memory and retry. If you still do not have enough memory then rerun specifying ZOOM=OFF as a parameter.

Error - Unable to SetMenuStrip
==============================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Unable to OpenWindowTags
================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Unable to AllocMem for Filename
=======================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Unable to Allocate xxxx Gadget
======================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Unable to Allocate xxxx Image
=====================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Failure loading Image 'xxxx'
====================================

There was an error loading the image xxxx. Another error message should previously have been displayed.

Resolution - See previous error message.

Error - Unable to AllocIFF
==========================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Unable to AllocMem for ILBMInfo
=======================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Unable to GetScreenDrawInfo
===================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Unable to LockPubScreen(xxxx)
=====================================

Either the Public Screen is not open or there is insufficient memory.

Resolution - Free up some memory and retry, or correct the PUBSCREEN parameter.

Error - Invalid file format - Line 'xxxx'
=========================================

The points file being loaded is in an incorrect Format or is not a points file.

Resolution - Specify a correct points file or manually edit the file and retry.

Error - Images are too small
============================

The images specified in the input file are too small.

Resolution - Either edit the input file - See Format, or select the New menu item and retry.

Error - Point out of range - Line 'xxxx'
========================================

The point coordinates specified in the input file is larger than the image size.

Resolution - Manually edit the input file - See Format and retry.

Error - Out of memory for points
================================

Insufficient memory is available.

Resolution - Free up some memory and retry after selecting either New or New Points to delete existing points.

Error - Invalid point link - Line 'xxxx'
========================================

The points linking specified in the input file is invalid.

Resolution - Manually edit the input file - See Format and retry.

Error - Error closing file 'xxxx'
=================================

The file xxxx could not be successfully closed. The disc may be full.

Resolution - If saving then save the file to a different disk or free up some disk space and retry with another name. The original file may not be accessible until after a reboot.

Error - Error opening file 'xxxx'
=================================

The file xxxx could not be opened. The file does not exist (when reading), the name is invalid, the file is already in use, or the disk is write protected.

Resolution - Use a different file name or allow the disk to be written to.

Error - Error writing to 'xxxx'
===============================

The file xxxx could not be successfully written to. The disc may be full. The file has not been successfully saved.

Resolution - Save the file to a different disk or free up some disk space and retry.

Error - Point already linked to 16 points
=========================================

Any point can only be linked to up to 16 other points. Note: the links are only for clarity and do not effect the rendering process.

Resolution - Unlink the current point from some other point and retry.

Error - Point not linked
========================

The points just selected are not currently linked and cannot therefore be unlinked.

Resolution - None required.

Error - Cannot link point to itself
===================================

A point can not be Linked to itself.

Resolution - Select another point to link to.

Error - Points already linked
=============================

The points you are trying to link are already linked.

Resolution - None required.

Error - Cannot unlink point from itself
=======================================

A point can not be unlinked from itself.

Resolution - Select another point to unlink from.

Error - Error no memory for new point
=====================================

There is no memory to add the new point.

Resolution - Free up some memory and retry.

Error - Unable to Open xxxx.library(n)
======================================

The library xxxx version number n could not be opened. See Requirements for a list of libraries required. It could just be a lack of memory.

Resolution - Ensure you are running at least version 2.04 of the operating system, or free up some memory and retry.

Error - Error saving file 'xxxx'
================================

Some error occurred saving the IFF ILBM output file. Another error requester may have previously appeared. Alternatively there could be a lack of memory. This error is also displayed when trying to save DCTV images in an invalid size.

Resolution - See the previous error message, or free up some memory and retry.

Error - Error AllocVec for output
=================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Error Opening points file
=================================

The input file specified to TSMorph-render does not exist or is in an invalid format.

Resolution - Either specify a valid input file, or manually edit the points file.

Error - Error opening progress window
=====================================

Some error occurred opening the Progress requester in TSMorph-render. Probably a lack of memory, or the PUBSCREENR parameter specifies a not open public screen name.

Resolution - Free up some memory or correct the parameter and retry.

Error - Unable to allocate memory for bitmap
============================================

Insufficient memory is available for some bitmap planes.

Resolution - Free up some memory and retry.

Error - Image must be 24 bit 'xxxx'
===================================

The image xxxx being loaded by TSMorph-render is not a 24 bit image. Only 24 bit ILBM images can be rendered.

This is an obsolete message which should not appear.

Resolution - Use TSMorph to specify a valid 24 bit ILBM image.

Error - Error loading 'xxxx'
============================

The image xxxx being loaded by TSMorph-render could not be loaded. A previous error requester could have appeared. The file name could be invalid.

Resolution - See the previous error message.

Error - Size does not match image - Line 'xxxx'
===============================================

The points file being loaded - See File Format - has an image size specified which does not match the image being loaded.

Resolution - Change the image size, manually edit the input file, or respecify the image name using TSMorph.

Error - Out of memory for points
================================

Insufficient memory is available.

Resolution - Free up some memory and retry.

Error - Must have at least 3 points
===================================

In order to correctly render an image at least 3 points must be defined.

Resolution - Use TSMorph to define at least 3 points - e.g. in 3 of the corners.

Error - Error sending ARexx message - 'xxxx'
============================================

TSMorph-render or TSMorph has had a problem sending the ARexx message. ARexx may not be running, or the script may not exist or have errors.

Resolution - Ensure ARexx is running, check the scripts - See parameters PRESCRIPT, POSTSCRIPT and LOADSCRIPT, or PREVIEW - exist and have TSM as a suffix.

If the above is OK then use TCO and TS to interactively trace the script.

Error - Assuming version 1.0 file format
========================================

The current version of the File Format has a header record. This error is saying no header is present, it is assumed that the file is in an old format.

Resolution - Select OK to continue. Load and Save in TSMorph to save in the new format if required.

Error - Must have at least one frame
====================================

This is displayed when trying to edit points on an Animated Morph/Warp when the number of frames is 0.

Resolution - Set the number of frames to at least 1.

Error - Frames must all be the same size
========================================

This is displayed when trying to change to a different frame. The size of all input images must be the same.

Resolution - Ensure all input images are the same size.

Error - Failure - yyyy - loading 'xxxx'
=======================================

opal.library had a problem loading image xxxx.

Resolution - yyyy should describe the problem.

Error - Error Saving Settings 'xxxx'
====================================

This message is displayed when TSMorph has been unable to save settings in the named file. If KEEPSETTINGS is set to YES then settings are saved in ENV:TSMorph/TSMorph.prefs when the program is quit.

Resolution - Supply a correct filename, set KEEPSETTINGS to NO, or create the directory ENV:TSMorph

Error - Error Loading Settings 'xxxx'
=====================================

TSMorph has had a problem loading the specified file. The file probably does not exist.

Resolution - Specify a correct file name

Error - No opal.library
=======================

TSMorph or TSMorph-render is trying to load an image using opal.library but it could not be opened.

Resolution - For TSMorph - If you do not have opal.library do not specify OPENMODE=OPAL. If you are not specifying this then the image you are trying to load must be in a format which TSMorph does not understand (this may be some unsupported JPEG variant).

For TSMorph-render - This is trying to load some unsupported image format.

Error - File does not exist 'xxxx'
==================================

TSMorph is trying to load an image from a file which does not exist or is inaccessible.

Resolution - Specify a valid file name.

Error - Error opening screen
============================

TSMorph has been unable to open the requested screen. This could be because the CUSTOMDEPTH is too great for the CUSTOMMODE, there is not enough memory, or some other related reason.

Resolution - Check you have enough memory, make sure the screen depth is OK for the screen mode.

Error - Unable to get DrawInfo
==============================

TSMorph has been unable to obtain some information from the Workbench, probably due to lack of memory.

Resolution - Free up some memory and retry.

Error - Unable to lock Workbench
================================

TSMorph has been unable to obtain some information from the Workbench, probably due to lack of memory.

Resolution - Free up some memory and retry.

Invalid screen mode xxxx
========================

The screen mode specified by CUSTOMMODE is not a valid screen mode.

Resolution - Check the screen mode against the list show in the preferences screen mode requester.

TSMorph is attempting to close this ...
=======================================

TSMorph is trying to close the Public Screen that it opened but is unable to as there are locks (probably open windows) on the screen.

Resolution - Close all other open windows on the screen and retry.

Known (and unknown errors)
**************************

  * Known Problems

       * Unsaved project does not check that gadgets really have been edited.

       * This guide sometimes has very long lines. Also bold items following * are followed by too many spaces. This appears to be due to a problem with MakeInfo, menus and lists.

       * This guide does not look correct when using amigaguide.library versions before 39. This will not be fixed.

       * Fails to do anything if run on less than 2.04 (could display a message). This is unlikely to be fixed.

       * Progress gadgets do not look to good using 2.04. They do look OK when using 3.0+. This will not be fixed.

       * 24 bit ILBMs are loaded into Chip memory. If you do not have enough, then convert the input images to PPM or JPEG first. (Thanks to Jamie Cope).

  * Unknown Problems?

       * Image validation requires tidying up - especially with anim morphs/warps.

       * TSMorph and TSMorph-render may not release all memory.

       * TSMorph-prefs has not been well tested.

       * TSMorph may open zoomed large windows with corruption.

       * Width and Height in the parameter file may not be correctly set and require manual editing.

Please report any other bugs by EMail to mark@topic.demon.co.uk or mpaddock@cix.compulink.co.uk.

Hardware and Software used in development
*****************************************

  * HSPascal            Editor.

  * SAS C               Code.

  * GadToolsBox         Info, Add Grid and Progress Windows. GadToolsBox is © Copyright 1991,92 Jaba Development.

  * DPaint              Control Window gadgets/Pointers.

  * Workbench 2.04      GUI.

  * MakeInfo            Documentation.

  * Iff2Src             Control Window gadgets. Iff2Src is © J Tyberghein.

  * ILBMtoC             Pointers.

  * IconEdit            Pointers.

  * NewIff              Various IFF routines.

  * ReqTools            For nicer requesters. ReqTools is © 1991/1992 Nico François

  * OpalVision          For opal.library for easy file loading and saving. OpalVision is a trademark of Opal Technology Pty Ltd.

  * DCTV                For dctv.library for saving and loading DCTV images. DCTV is © 1991,1992 Digital Creations, Inc.

  * IJG JPEG software   For the PPM, TARGA, GIF and JPEG file loading code.

  * EGS                 For the EGS interface.

  * AG2TXT              For the .doc file. AG2TXT is Copyright (c) 1993 Jason R. Hulance.

  * Fenster             To capture the windows

  * MKANIM              To generate Animations. MKANIM is Copyright © 1993 by John Bickers.

  * Viewtek             To display Animations. Viewtek is © 1992 Thomas Krehbiel.

  * Commodore Amiga 2000 with 1MB chip ram,

  * Commodore 1960 monitor,

  * GVP SCSI hard card with 52MB Quantum disc,

  * RCS Fusion Forty accelerator with 8MB fast ram.

Version History (since 2.0)
***************************

  * Version 3.0

       * Recompiled using SAS/C 6.51.

       * Added 68040 version.

       * Now correctly handles AGA palettes.

       * Installer now included. (Thanks to Perry Horner).

       * Fixed a problem with the EGS pointer (Thanks to Darren Eveland).

  * Version 2.5

       * Major Enhancements

            * Added EGS support to TSMorph and TSMorph-render.

            * Added INTEGER parameter to TSMorph-render. This should make the program run faster, but the output will not be as good. The Icon supplied for the non FPU version has INTEGER=YES set by default, the default preview script also sets this.

            * Added MODEs 4 to 31. This changes the Settings menu.

            * Added Triangulate menu item to convert point links to triangles. Points can now be linked to up to 16 other points.

            * Added a short tutorial - See @{"Tutorial/Tutorial.readme" ALINK "Tutorial/Tutorial.readme/Main"}.

            * Added documentation in plain text format - See @{"TSMorph.doc" ALINK "TSMorph.doc/Main"}. (Thanks to Perry Horner).

            * Added documentation in .html format - Mosaic is required to view this.

       * Minor Enhancments

            * Edited the graphics in this guide. It will only look correct under the OS3.0+ version of AmigaGuide.library.

            * When trying to close the Public Screen TSMorph will display an error if any other windows are open.

            * Horizontal and Vertical gadgets are now correct on 2 colour screens.

            * Added REQTOOLS parameter to TSMorph and TSMorph-render.

            * TSMorph-render now uses nofrag.library for memory allocation if available.

            * Added new prescript example script to render all frames.

            * Added new Hints & Tips section.

            * Sped up the remapping of normal ILBM images.

            * Install script now determines 68020/881 correctly itself.

            * Added some new ARexx scripts to generate animations.

       * Bug Fixes

            * Fixed a very silly bug with the DEPTH parameter. It was always read as at least 20. This should speed up rendering.

            * TSMorph-prefs and TSMorph set ANTIALIAS and HELP correctly when Reset to Defaults.

            * Some fixes to the default PREVIEW script. (Thanks to Stefan Haubenthal).

            * TSMorph-prefs now correctly sets the Render mode.

            * Output images should not have garbage on the right hand side.

            * Lots of minor code and docs changes.

  * Version 2.4

       * Fixed bug where if 1st image for a Morph was loaded to convert the first frame then the second image was never loaded.

  * Version 2.3

       * Enhancements

            * Keyboard shortcuts added to Edit windows to change Edit Mode (this prevents any screen flicker when CHANGEPALLETE is set to YES).

       * Bug Fixes

            * Sensible message is displayed if opal.library is not present and an input image does not exist in TSMorph-render.

            * TSMorph-render no longer attempts to load unnecessary images and point files for the first and last frames.

            * PREVIEW can now be longer than the default value without causing public screen name problems.

            * TSMorph-prefs no longer resets preferences to defaults if Open... is cancelled.

            * Zoom? menu item now works on the Info window.

            * No longer opens project SETTINGS= settings file twice.

            * Title of file requester to Open Project is now Load Project not Load File.

            * Major source code clean up.

            * Source code is now available. Distribution is under GNU General Public Licence. See distribution.

  * Version 2.2

       * Major Enhancements

            * Added Anti-Alias capability to TSMorph-render.

            * Added ability to TSMorph and TSMorph-render to load a large variety of image formats (JPEG, ILBM (including 24 bit, EHB, HAM6, HAM8 and DCTV with dctv.library), TARGA, GIF and PPM). See OPENMODE and LOADSCRIPT.

            * Added a lot more save formats (grey 16, grey 256, HAM 6, HAM 8 and DCTV3 and DCTV4 [with dctv.library]).

            * Added continuous help option, and Help Text gadget to TSMorph.

            * Added the Preview option to preview render an image. See Preview..., Preview... and PREVIEW.

            * Added the ability to open custom screens.

            * Can now save the first and last images - see Prescript.

            * Added preferences editor TSMorph-prefs.

       * Minor Enhancements

            * Loading Image requester is displayed. See OPENMODE.

            * 24 File 1 and 24 File 2 gadgets can now be left blank to use the File One and File Two names.

            * MakeInfo 1.55 used. This doc now has more formatting.

            * Progress requester now shows a list view of messages.

       * Bug Fixes

            * Image remapping should be more correct.

            * Edit/Mode sub-menu has a capital E.

            * Should no longer leave the Screen with the incorrect palette when TSMorph is quit.

            * Fixed a nasty memory corruption bug with DX and DY.

            * Control Window gadgets now look more correct on screens with more than 4 colours.

            * Fixed a bug where parameters were automatically reset when opening a project.

            * Open Points... no longer resets Morph parameters.

            * Load Settings... now works.

            * DEPTH parameter can now be greater than the number of points without memory corruption.

            * TSMorph window is correctly disabled when saving after Unsaved Project requester is displayed.

            * Uses less memory for Zoom raster.

            * TSMorph opens amigaguide window on screen specified by PUBSCREEN.

            * String requesters will now accept empty strings.

  * Version 2.0a

       * Minor update to the File Format description. (Includes Anim Morphs and Warps).

       * ENV/TSMorph/def_points now has Stack set to 8192. (Prevents crashes when using opal.library).

       * Render Public Screen menu item is disabled if reqtools.library is not available. (Previously crashed if selected).

       * Only relevant OPENMODE is ALWAYS if opal.library is not available (Thanks to spark@cix).

       * Screen is automatically brought to the front when the first window opens.

Hints & Tips
************

This section supplies some hopefully useful information which may not be immediately apparent elsewhere.

Speed?

If you do not have an FPU then set the INTEGER parameter to YES. Even if you do have an FPU this may still make things run faster.

If it still slow then try changing DX and DY to 1 (or more).

If you have lots of memory then setting the precalculate part of MODE (16) should help.

What MODE?

This depends on the type of Morph.

If you are, say, rotating some text on a background, then it is probably best to set the stationary part (1). You would NOT want to set the precalculate once part (16).

If you are morphing, say, two faces where the points do not move much between the first and last image then it may be best to set the precalculate part (16) (provided you have enough free memory). Setting the Delaunay part (8) may also be a good idea.

Setting search (2) is probably not a good idea.

Not enough memory for TSMorph

If you run out of Chip memory when trying to load large images then try setting ZOOM to OFF.

HAM output has fringing

A very simple algorithm is used for generating HAM output. If the output is not acceptable then the best idea is to output some other format (ILBM24 or PPM) and then run a proper image conversion program on the output (possibly as part of the Postscript script).

Copyright and distribution requirements
***************************************

      TSMorph - Amiga Morphing program
      Copyright (C) © 1993/94 Topicsave Limited

      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
      any later version.

      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.

      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

      mark@topic.demon.co.uk
      mpaddock@cix.compulink.co.uk

TSMORPH IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE; NO WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK.  NO LIABILITY OR RESPONSIBILITY IS ASSUMED.

TSMorph is ©1993/94 Topicsave Limited.

Please send any criticisms, bugs, etc. by EMail to mark@topic.demon.co.uk or mpaddock@cix.compulink.co.uk.

         This software is based in part on the work of the Independent JPEG Group.

         The Graphics Interchange Format(c) is the Copyright property of
         CompuServe Incorporated.  GIF(sm) is a Service Mark property of
         CompuServe Incorporated.

         The Delaunay code was written by Dave Watson and uses the algorithm described in -
         Watson, D.F., 1981, Computing the n-dimensional Delaunay tessellation with
         application to Voronoi polytopes: The Computer J., 24(2), p. 167-172.

         Installer and Installer project icon
         (c) Copyright 1991-93 Commodore-Amiga, Inc.  All Rights Reserved.
         Reproduced and distributed under license from Commodore.

         INSTALLER SOFTWARE IS PROVIDED "AS-IS" AND SUBJECT TO CHANGE;
         NO WARRANTIES ARE MADE.  ALL USE IS AT YOUR OWN RISK.  NO LIABILITY
         OR RESPONSIBILITY IS ASSUMED.

Preferences editor
******************

TSMorph-prefs is a standard preferences editor.

When loaded it loads the current settings from ENV:TSMorph/TSMorph.prefs. It then displays a window showing all the preferences.

Help displays context sensitive help using amigaguide if available.

TSMorph-prefs Gadgets
=====================

@font topaz.font 8

<img src="Images/Prefs"><P>

     -----------------------------------------------------------
     |.| TSMorph Preferences                            |TSMP-Zoom|TSMP-Depth|
     |---------------------------------------------------------|
     |  Custom Screen         Render                TSMorph    |
     | NONE---------|  DX |---0 DY |---0     ZoomYES |
     | PAL:Low Res--|  Mode  PaletteYES |
     | PAL:High Res-|  Save Format--|-75     ModeIFCOLOURS |
     | Depth --|--- 4  AAx Intx Dep-|-5    Prefsx  Helpx |
     |                                                         |
     |            ARexx Script                Public Screen    |
     | Preview ...................  TSMorph ................ |
     |    Load ...................   Render ................ |
     |     Pre ...................             Icon           |
     |    Post ................... Projectx Prefsx Renderx |
     |                                                         |
     | Save                    Use                 Cancel |
     -----------------------------------------------------------

TSMorph-prefs Close gadget
--------------------------

This closes the window and discards any changes.

TSMorph-prefs Zoom gadget
-------------------------

This is a standard zoom gadget and zooms the window to/from a title bar.

TSMorph-prefs Depth gadget
--------------------------

This is a standard depth gadget.

TSMorph-prefs Save gadget
-------------------------

This save the settings in ENV:TSMorph/TSMorph.prefs and ENVARC:TSMorph/TSMorph.prefs.

Any changes are not picked up until TSMorph or TSMorph-render is reloaded.

TSMorph-prefs Use gadget
------------------------

This save the settings in ENV:TSMorph/TSMorph.prefs.

Any changes are not picked up until TSMorph or TSMorph-render is reloaded.

TSMorph-prefs Cancel gadget
---------------------------

This closes the window and discards any changes.

TSMorph-prefs Menus
===================

The following menus are available on the TSMorph-prefs Window:

TSMorph-prefs Project menu
--------------------------

This menu contains the following items with their associated Amiga short-cuts in the TSMorph-prefs Window:

TSMorph-prefs Project/Open... menu item
.......................................

This displays a file requester to load the settings. The default name is TSMorph.prefs in the current directory.

TSMorph-prefs Project/Save As... menu item
..........................................

This displays a file requester to save the settings. The default name is TSMorph.prefs in the current directory.

TSMorph-prefs Project/Quit menu item
....................................

This closes the window and discards any changes.

TSMorph-prefs Edit menu
-----------------------

This menu contains the following items with their associated Amiga short-cuts in the TSMorph-prefs Window:

TSMorph-prefs Edit/Reset To Defaults menu item
..............................................

This resets the settings to their default values.

TSMorph-prefs Edit/Last Saved menu item
.......................................

This loads the settings from ENVARC:TSMorph/TSMorph.prefs.

TSMorph-prefs Edit/Restore menu item
....................................

This loads the settings from ENV:TSMorph/TSMorph.prefs.

TSMorph-prefs Settings menu
---------------------------

This menu contains the following items with their associated Amiga short-cuts in the TSMorph-prefs Window:

TSMorph-prefs Settings/Create Icons? menu item
..............................................

This item toggles if Icons are to be saved with Settings files. If it is selected then an Icon will be saved. The icon will come from ENV:TSMorph/def_prefs if this exists, secondly from ENV:SYS/def_prefs, otherwise the default project Icon is used.

This menu item is similar to but can have a different value to the CREATEICONSP parameter.